package com.semis.web.controller.base;

import com.semis.business.base.domain.BasLandSystem;
import com.semis.business.base.service.IBasGismsgService;
import com.semis.common.annotation.Log;
import com.semis.common.core.controller.BaseController;
import com.semis.common.core.domain.AjaxResult;
import com.semis.common.enums.BusinessType;
import com.semis.common.utils.poi.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 地块GIS库Controller
 *
 * @author litu
 * @date 2023-07-17
 */
@Api(tags = "地块GIS库管理")
@RestController
@RequestMapping("/basedata/gismsg")
public class BasGismsgController extends BaseController {
    @Autowired
    private IBasGismsgService basGismsgService;

    // /**
    //  * 查询地块GIS库列表
    //  */
    // @ApiOperation("查询地块GIS库列表")
    // @PreAuthorize("@ss.hasPermi('basedata:gismsg:list')")
    // @GetMapping("/list")
    // public TableDataInfo list(BasGismsg basGismsg) {
    //     startPage();
    //     List<BasGismsg> list = basGismsgService.selectBasGismsgList(basGismsg);
    //     return getDataTable(list);
    // }

    // /**
    //  * 导出地块GIS库列表
    //  */
    // @ApiOperation("导出地块GIS库列表")
    // @PreAuthorize("@ss.hasPermi('basedata:gismsg:export')")
    // @Log(title = "地块GIS库", businessType = BusinessType.EXPORT)
    // @PostMapping("/export")
    // public void export(HttpServletResponse response, BasGismsg basGismsg) {
    //     List<BasGismsg> list = basGismsgService.selectBasGismsgList(basGismsg);
    //     ExcelUtil<BasGismsg> util = new ExcelUtil<BasGismsg>(BasGismsg.class);
    //     util.exportExcel(response, list, "地块GIS库数据");
    // }

    /*
     * 导入地块GIS库列表
     */
    @ApiOperation("导入地块GIS库列表")
    @Log(title = "地块GIS库列表", businessType = BusinessType.IMPORT)
    @PreAuthorize("@ss.hasPermi('basedata:gismsg:import')")
    @PostMapping("/import")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
        ExcelUtil<BasLandSystem> util = new ExcelUtil<BasLandSystem>(BasLandSystem.class);
        List<BasLandSystem> list = util.importExcel(file.getInputStream());
        String operName = getUsername();
        // String message = basGismsgService.importLand(list, updateSupport, operName);
        // return success(message);
        return error("功能待开发!");
    }

    /*
     * 导入地块GIS库模板
     */
    @ApiOperation("导入地块GIS库模板")
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response) {
        ExcelUtil<BasLandSystem> util = new ExcelUtil<BasLandSystem>(BasLandSystem.class);
        util.encodingFilename("导入地块GIS库模板.xlsx");
        util.importTemplateExcel(response, "地块GIS");
    }

    /**
     * 获取地块系统数据地理信息geoJson格式
     */
    @ApiOperation("获取地块系统数据地理信息geoJson格式")
    @PreAuthorize("@ss.hasPermi('basedata:gismsg:query')")
    @GetMapping(value = "/getLandGeoJson")
    public AjaxResult getLandGeoJson(@RequestParam String landCode) {
        return success(basGismsgService.getLandGeoJson(landCode));
    }

    // /**
    //  * 新增地块GIS库
    //  */
    // @ApiOperation("新增地块GIS库")
    // @PreAuthorize("@ss.hasPermi('basedata:gismsg:add')")
    // @Log(title = "地块GIS库", businessType = BusinessType.INSERT)
    // @PostMapping
    // public AjaxResult add(@RequestBody BasGismsg basGismsg) {
    //     return toAjax(basGismsgService.save(basGismsg));
    // }

    // /**
    //  * 修改地块GIS库
    //  */
    // @ApiOperation("修改地块GIS库")
    // @PreAuthorize("@ss.hasPermi('basedata:gismsg:edit')")
    // @Log(title = "地块GIS库", businessType = BusinessType.UPDATE)
    // @PutMapping
    // public AjaxResult edit(@RequestBody BasGismsg basGismsg) {
    //     return toAjax(basGismsgService.updateById(basGismsg));
    // }

    // /**
    //  * 删除地块GIS库
    //  */
    // @ApiOperation("删除地块GIS库")
    // @PreAuthorize("@ss.hasPermi('basedata:gismsg:remove')")
    // @Log(title = "地块GIS库", businessType = BusinessType.DELETE)
    // @DeleteMapping("/{ids}")
    // public AjaxResult remove(@PathVariable String[] ids) {
    //     return toAjax(basGismsgService.removeByIds(Arrays.asList(ids)));
    // }
}
